package com.usian.wemedia.feign;

import com.usian.common.dtos.PageResult;
import com.usian.common.dtos.ResponseResult;
import com.usian.model.admin.dtos.NewsAuthDto;
import com.usian.model.media.dtos.WmNewsDto;
import com.usian.model.media.dtos.WmNewsResultDTO;
import com.usian.model.media.dtos.WmUserDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@FeignClient("leadnews-wemedia")//指定当前接口作为leadnews-wemedia服务的feign接口
public interface WemediaFeign {

    /**
     * 按照用户id查询用户
     * @param userId
     * @return
     */
    @GetMapping("/api/v1/wmuser/findByApUserId/{userId}")
     public WmUserDto findByApUserId(@PathVariable("userId")Integer userId);



    /**
     * 保存自媒体用户
     *
     * @param wmUserDto
     * @return
     */

    @PostMapping("/api/v1/wmuser/save")
    public Integer saveWmUser(@RequestBody WmUserDto wmUserDto);


    /**
     * 根据id查询文章
     *
     * @param id
     * @return
     */
    @GetMapping("/api/v1/news/one/{id}")
    ResponseResult<WmNewsResultDTO> findById(@PathVariable(name = "id") Integer id);

    /**
     * 更新自媒体新闻状态
     * @param wmNewsDto
     * @return
     */
    @PutMapping("/api/v1/news/update")
    void updateWmNews(@RequestBody WmNewsDto wmNewsDto);


    /**
     * 获取需要发布的文章id列表
     * @return
     */
    @GetMapping("/api/v1/news/findPub")
    public List<Integer> findWmNewsIds();

    /**
     * 查询文章列表
     *
     * @param newsAuthDto
     * @return
     */
    @PostMapping("/api/v1/news/list")
    public PageResult<WmNewsResultDTO> findWmNewsByPage(@RequestBody NewsAuthDto newsAuthDto);

}
